﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SimpleIR
{

	////////////////////////////////////
	//Types

	/// <summary>
	/// Tags for marking properties of types, both that currently exist in C# and that we add as attributes.
	/// </summary>
	[Flags]
	public enum TypeQualifiers
	{
		Clear = 0x0,
		StaticTag = 0x1,
		InterfaceTag = 0x2,
		AbstractTag = 0x4,
		PublicTag = 0x8,
		InternalTag = 0x10,
		BuiltinTag = 0x20
	};

	////////////////////////////////////
	//Fields

	/// <summary>
	/// Tags for marking properties of fields, both that currently exist in C# and that we add as attributes.
	/// </summary>
	[Flags]
	public enum FieldQualifiers
	{
		PublicTag = 0x1,
		InternalTag = 0x2,
		PrivateTag = 0x4
	};

	////////////////////////////////////
	//Methods

	/// <summary>
	/// Tags for marking properties of types, both that currently exist in C# and that we add as attributes.
	/// </summary>
	[Flags]
	public enum MethodQualifiers
	{
		Clear = 0x0,
		AbstractTag = 0x1,
		PublicTag = 0x2,
		InternalTag = 0x4,
		PrivateTag = 0x8,
		BuiltinTag = 0x10,
		TypePatchNeeded = 0x20
	};
}
